package shili;

import java.util.concurrent.atomic.AtomicInteger;
//class AtomicInteger{
//    private int value;
//    public int getAndIncrement(){
//        int oldValue = value;
//        while(CAS(value,oldValue,oldValue+1)!=true){
//            oldValue = value;
//        }
//        return oldValue;
//    }
//}
//public class  SpinLock {
//    private Thread owner = null;
//    public void lock(){
//        // 通过 CAS 看当前锁是否被某个线程持有.
//        // 如果这个锁已经被别的线程持有, 那么就⾃旋等待.
//        // 如果这个锁没有被别的线程持有, 那么就把 owner 设为当前尝试加锁的线程.
//        while(!CAS(this.owner, null,Thread.currentThread()){
//        }
//    }
//    public void unlock() {
//        this.owner = null;
//    }
//}
//public class cas {
//    public static void main(String[] args) {
//        AtomicInteger atomicInteger = new AtomicInteger(0);
//        atomicInteger.getAndIncrement();
//    }
//}
